// --call chek--

function call_check() {
	var x=document.forms["regform"]["user_name"];
	var p=document.forms["regform"]["pass"];
	var p2=document.forms["regform"]["pass2"];
	var e=document.forms["regform"]["email"];
	var d=document.forms["regform"]["born_day"];
	var m=document.forms["regform"]["born_month"];
	var y=document.forms["regform"]["born_year"];
	var gf=document.forms["regform"]["gender"][0];
	var gm=document.forms["regform"]["gender"][1];
	var c=document.forms["regform"]["capcha_v"];
	var t=document.forms["regform"]["terms"];
	
	validate(x.value);
	checkPassStrength(p.value);
	checkPassMatch(p2.value);
	validateEmail(e.value);
	validateBorn(d.value, m.value, y.value);
	validateGender(gf.checked,gm.checked);
	checkCapcha(c.value);
	validateTerms(t.checked);
	
}

// --/call check--

// --full chek--

function full_check() {
	var x=document.forms["regform"]["user_name"];
	var p=document.forms["regform"]["pass"];
	var p2=document.forms["regform"]["pass2"];
	var e=document.forms["regform"]["email"];
	var d=document.forms["regform"]["born_day"];
	var m=document.forms["regform"]["born_month"];
	var y=document.forms["regform"]["born_year"];
	var gf=document.forms["regform"]["gender"][0];
	var gm=document.forms["regform"]["gender"][1];
	var c=document.forms["regform"]["capcha_v"];
	var t=document.forms["regform"]["terms"];
	
	if (validate(x.value)==3)
	  {
	  alert("Не сте въвели потребителско име!");
	  x.select();
	  return false;
	  }
	
	else if (!validate(x.value))
	  {
	  alert("Потребителското име не отговаря на изискванията!");
	  x.select();
	  return false;
	  }
	  
	else if (validate(x.value)==4)
	  {
	  alert("Потребителското име е заето!");
	  x.select();
	  return false;
	  }
	
	else if (!checkPassValidity(p.value,"passMessage"))
	  {
	  alert("Паролата не отговаря на изискванията!");
	  p.select();
	  return false;
	  }
	
	else if (!checkPassMatch(p2.value))
	  {
	  alert("Паролите не съвпадат!");
	  p2.select();
	  return false;
	  }
	
	else if (validateEmail(e.value)==5)
	  {
	  alert("Не сте въвели E-mail!");
	  e.select();
	  return false;
	  }
	
	else if (!validateEmail(e.value))
	  {
	  alert("E-mail адреса не отговаря на изискванията!");
	  e.select();
	  return false;
	  }
	  
	else if (validateEmail(e.value)==6)
	  {
	  alert("E-mail адреса е зает!");
	  e.select();
	  return false;
	  }
	
	else if (validateBorn(d.value, m.value, y.value)==7)
	  {
	  alert("Не сте въвели дата на раждане!");
	  return false;
	  }
	
	else if (!validateBorn(d.value, m.value, y.value))
	  {
	  alert("Датата на раждане е непълна!");
	  return false;
	  }
	  
	 else if (validateBorn(d.value, m.value, y.value)==9)
	  {
	  alert("Датата на раждане е невалидна!");
	  return false;
	  }
	
	else if (gf.checked==false && gm.checked==false)
	  {
	  alert("Не сте избрали пол!");
	  return false;
	  }
	
	else if (!checkCapcha(c.value))
	  {
	  alert("Не сте въвели кода!");
	  return false;
	  }
	
	else if (t.checked==false)
	  {
	  alert("Не сте се съгласили с условията!");
	  return false;
	  }
	  
	else return true;
 }

// --/full check--

// --validate ename--

function chCkUserFirst(strg) { 
  cc = strg.charCodeAt(strg.substr(0));
  if (((cc >= 65 && cc <= 90) || (cc >= 97 && cc <= 122)))		// a-z,A-Z
  {			
	return true;
  }
  return false;
}

function chCkUserNew(strg) {
  for (i=0; i<strg.length; i++) {
	  cc = strg.charCodeAt(i);
    if (!(
          (cc >= 48 && cc <= 57)  ||           							// 0-9
          (cc >= 65 && cc <= 90) || (cc >= 97 && cc <= 122) ||			// a-z,A-Z
          (cc == 45 || cc == 46 || cc == 95)							// -,.,_
         )) return false;
  }
  return true;
}

function validate(username) {
 if (username.length < 1) {
   printMsg("Не сте въвели потребителско име!",2);
   return 3;
 }
 if (!chCkUserFirst(username)) {
   printMsg("Потребителското име трябва да започва с латинска буква!",2);
   return false;
 }

 if (!chCkUserNew(username)) {
   printMsg("В потребителското име има недопустими символи!",2);
   return false;
 }
 if (username.length < 3) {
   printMsg("Това поле не може да съдържа по-малко от 3 символа!",2);
   return false;
 }
 if (username.length > 30) {
   printMsg("Това поле не може да съдържа повече от 30 символа!",2);
   return false;
 }

 checkUsername(username);
 
 if (okname==1) return 4; // Заето име!
 if (okname==2) return true;

}

var okname = 0;

function checkUsername(username){
  document.getElementById('userIdMessage').innerHTML = '<img src="img/loading1.gif" width="20px" height="20px" title="Проверяване..." alt="Проверяване...">'; // Извеждаме надпис, че името се проверява
  var xmlhttp=false; // Изчистваме променливата, която ще ползваме
  try {
    xmlhttp = new ActiveXObject('Msxml2.XMLHTTP'); // За Firefox
  } catch (e) {
    try {
      xmlhttp = new
      ActiveXObject('Microsoft.XMLHTTP'); // За IE
    } catch (E) {
      xmlhttp = false;
    }
  }
  if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
    xmlhttp = new XMLHttpRequest(); // Ако сме успели да активираме Active X, започваме XMLHttpRequest
  }
  xmlhttp.open('POST', 'check.php', true); // Връзка с PHP файла
  xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
  xmlhttp.send('username=' + username);
  xmlhttp.onreadystatechange=function() { // Обработване на получените данни за името
    if (xmlhttp.readyState==4) { // Проверяваме сме получили данни за името
      var content = xmlhttp.responseText; // Правим променлива с данните за името
      if( content ){
        switch(content){ // Ако PHP файла е отговорил с 1 - името е заето. Ако е отговорил с 2 е свободно
          case "1":printMsg("Потребителското име е заето!",2);okname = 1; break;
          case "2":printMsg("&radic;",1);okname = 2; break;
          default :printMsg(null,0); break;
        }
      }
    }
  }
  xmlhttp.send(null); // Зануляване на XMLHttpRequest
  return;
}

function printMsg(param,type) {
  var mdiv = document.getElementById("userIdMessage");
  switch (type){
    case 1: mdiv.innerHTML = "<font color=\"#0075ff\"><b>" + param + "</b></font>"; break;
    case 2: mdiv.innerHTML = "<font color=\"red\">" + param + "</font>"; break;
    default: mdiv.innerHTML = ""; break;   
  }
}
// --/validate ename--

// --validate email--

function chCkEmail(strg) { 
	var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})$/;
    if(filter.test(strg)) return true;
	else return false;
}

function validateEmail(email) {
 if (email.length < 1) {
   printMsgEmail("Не сте въвели Е-mail!",2);
   return 5;
 }
 if (!chCkEmail(email)) {
   printMsgEmail("Невалиден Е-mail!",2);
   return false;
 }

 checkEmail(email);
 
 if (okemail==4) return 6; // Зает E-mail!
 if (okemail==5) return true;
 
}

var okemail = 0;

function checkEmail(email){
  document.getElementById('EmailMessage').innerHTML = '<img src="img/loading1.gif" width="20px" height="20px" title="Проверяване..." alt="Проверяване...">'; // Извеждаме надпис, че името се проверява
  var xmlhttp=false; // Изчистваме променливата, която ще ползваме
  try {
    xmlhttp = new ActiveXObject('Msxml2.XMLHTTP'); // За Firefox
  } catch (e) {
    try {
      xmlhttp = new
      ActiveXObject('Microsoft.XMLHTTP'); // За IE
    } catch (E) {
      xmlhttp = false;
    }
  }
  if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
    xmlhttp = new XMLHttpRequest(); // Ако сме успели да активираме Active X, започваме XMLHttpRequest
  }
  xmlhttp.open('POST', 'check.php', true); // Връзка с PHP файла
  xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
  xmlhttp.send('email=' + email);
  xmlhttp.onreadystatechange=function() { // Обработване на получените данни за Email-а
    if (xmlhttp.readyState==4) { // Проверяваме сме получили данни за Email-а
      var content = xmlhttp.responseText; // Правим променлива с данните за Email-а
      if( content ){
        switch(content){ // Ако PHP файла е отговорил с 3 - Email-а е зает. Ако е отговорил с 4 е свободен
          case "3":printMsgEmail("E-mail адреса е зает!",2);okemail=4; break;
          case "4":printMsgEmail("&radic;",1);okemail=5; break;
          default :printMsgEmail(null,0); break;
        }
      }
    }
  }
  xmlhttp.send(null) // Зануляване на XMLHttpRequest
  return;
}


function printMsgEmail(param,type) {
  var mdiv = document.getElementById("EmailMessage");
  switch (type){
    case 1: mdiv.innerHTML = "<font color=\"#0075ff\"><b>" + param + "</b></font>"; break;
    case 2: mdiv.innerHTML = "<font color=\"red\">" + param + "</font>"; break;
    default: mdiv.innerHTML = ""; break;   
  }
}
// --/validate email--

// --validate born--

function checkdate (m, d, y)
{
  return m > 0 && m < 13 && y > 0 && y < 32768 && d > 0 && d <= (new Date(y, m, 0)).getDate();
}

function validateBorn(born_day,born_month,born_year) {
 if (born_day == '' && born_month == '' && born_year == '') {
   document.getElementById("BornMessage").innerHTML = "<font color=\"red\">Не сте въвели дата на раждане!</font>";
   return 7;
 }
 if (born_day == '' || born_month == '' || born_year == '') {
   document.getElementById("BornMessage").innerHTML = "<font color=\"red\">Датата на раждане е непълна!</font>";
   return false;
 }
 if (!checkdate(born_month, born_day, born_year))
 {
	document.getElementById("BornMessage").innerHTML = "<font color=\"red\">Датата на раждане е невалидна!</font>";
	return 9;
 }

 document.getElementById("BornMessage").innerHTML = "<font color=\"#0075ff\"><b>&radic;</b></font>";
 return true;
 
}

// --/validate born--

// --validate gender--

function validateGender(gender_f,gender_m) {
 if (gender_f == false && gender_m == false) {
   document.getElementById("GenderMessage").innerHTML = "<font color=\"red\">Не сте избрали пол!</font>";
   return false;
 }

 document.getElementById("GenderMessage").innerHTML = "<font color=\"#0075ff\"><b>&radic;</b></font>";
 return true;
 
}

// --/validate gender--

// --check capcha--

function checkCapcha(capcha) {
 if (capcha == "") {
   document.getElementById("capchaMessage").innerHTML = "<font color=\"red\">Не сте въвели кода!</font>";
   return false;
 }

 document.getElementById("capchaMessage").innerHTML = "";
 return true;
 
}

// --/check capcha--

// --validate terms--

function validateTerms(terms) {
 if (terms == false) {
   document.getElementById("TermsMessage").innerHTML = "<font color=\"red\">Не сте се съгласили с условията!</font>";
   return false;
 }

 document.getElementById("TermsMessage").innerHTML = "<font color=\"#0075ff\"><b>&radic;</b></font>";
 return true;
 
}

// --/validate terms--